#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : Leiyh
# @File : industry_chain_customers.py
from time import sleep

from base.ui.base_ui import BaseUI


# 产业链获客模块
class IndustryChainCustomers(BaseUI):
    # 产业链获客
    p_icc = "//p[contains(text(),'产业链获客')]"
    # 区域重点产业
    p_key_regional_industries = "//span[contains(text(),'区域重点产业')]"
    # 战略新兴产业
    p_strategic_emerging_industry = "(//span[contains(text(),'战略新兴产业')])[1]"
    # 行业分类下拉框
    p_industry_classify = "//label[contains(text(),'行业分类')]/following-sibling::div/div/div/input"
    # 行业分类下拉值
    p_industry_classify_value = "//span[contains(text(),'国标分类')]"
    # 区域下拉框
    p_region = "//label[contains(text(),'区域')]/following-sibling::div/div/div/input"
    # 区域下拉值
    p_region_value = "//span[contains(text(),'北京市')]"
    # 产业
    p_industry = "//span[contains(text(),'支柱产业')]"
    # 企业
    p_company = '((//div[@class="topic-industry-list common-panel"]/div)[1]/div/div/div)[1]'
    # 产业图谱>查看完整产业链
    p_industry_map = "//a[contains(text(),'查看完整产业链')]"
    # 产业下拉框
    p_industry_1 = "(//label[contains(text(),'产业：')]/../div/div/div)[1]/input"
    # p_industry_2 = '((//div[@class="el-scrollbar"]/div)[1]/ul/li)[1]'
    p_industry_2 = "(//span[contains(text(),'软件和信息技术服务业')])[last()]"
    # 软件和信息技术服务业>消费电子产品>查看更多
    selector_consumer_electronic = '#csf_20119210 > rect:nth-child(3)'
    p_see_more = "//span[contains(text(),'查看更多')]"
    # 上市市场筛选
    p_Listing_market_screening_1 = '(//div[@class="el-input el-input--mini el-input--suffix"])[1]/input'
    p_Listing_market_screening_2 = '((//ul[@class="el-scrollbar__view el-select-dropdown__list"])[last()]/li)[5]'
    # 融资轮次筛选
    p_Financing_round_screening_1 = '(//div[@class="el-input el-input--mini el-input--suffix"])[1]/input'
    p_Financing_round_screening_2 = '((//ul[@class="el-scrollbar__view el-select-dropdown__list"])[last()]/li)[last()-3]'
    # 企业资质筛选
    p_Enterprise_qualification_screening_1 = '(//div[@class="el-input el-input--mini el-input--suffix"])[2]/input'
    p_Enterprise_qualification_screening_2 = '((//ul[@class="el-scrollbar__view el-select-dropdown__list"])[last()]/li)[last()]'
    # 查询
    p_query = "//span[contains(text(),'查询')]"
    # 产业园统计>查看更多产业园
    p_Industrial_Park_Statistics = "//a[contains(text(),'查看更多产业园')]"
    # 行业动态资讯>新闻线索
    p_news_clue = "//span[contains(text(),'新闻线索')]"
    # 行业动态资讯>政策线索
    p_clues_policy = "//span[contains(text(),'政策线索')]"
    # 行业动态资讯>查看更多线索
    p_check_out_more_clues = "//a[contains(text(),'查看更多线索')]"
    # 推荐企业>筛选更多企业
    p_screening_more_enterprises = "//a[contains(text(),'筛选更多企业')]"
    # 推荐企业>企业详情
    p_company_details = '((//div[@class="common-data-list--body"]/div)[1]/div)[1]'

    # 点击进入产业链获客页面
    def click_icc(self):
        self.click(self.p_icc)

    # 选择区域重点产业
    def click_key_regional_industries(self):
        self.click(self.p_key_regional_industries)

    # 选择行业分类
    def click_industry_classify(self):
        self.click(self.p_industry_classify)
        self.click(self.p_industry_classify_value)

    # 选择区域
    def click_region(self):
        self.click(self.p_region)
        self.click(self.p_region_value)

    # 选择产业
    def click_industry(self):
        self.click(self.p_industry)

    # 选择左侧企业
    def click_company(self):
        self.click(self.p_company)

    # 查看完整产业链
    def click_industry_map(self):
        self.click(self.p_industry_map)

    # 选择产业
    def click_industry_1(self):
        self.click(self.p_industry_1)
        self.click(self.p_industry_2)

    # 查看更多相关公司
    def click_see_more(self):
        sleep(1)
        # 根据指定的selector鼠标悬浮,点击更多
        self.move_to_element_selector(self.selector_consumer_electronic)
        self.click(self.p_see_more)
        # 搜索相关公司
        self.click(self.p_Listing_market_screening_1)
        self.click(self.p_Listing_market_screening_2)

        self.click(self.p_Financing_round_screening_1)
        self.click(self.p_Financing_round_screening_2)

        self.click(self.p_Enterprise_qualification_screening_1)
        self.click(self.p_Enterprise_qualification_screening_2)

        self.click(self.p_query)

    # 查看更多产业园
    def click_Industrial_Park_Statistics(self):
        self.click(self.p_Industrial_Park_Statistics)

    # 查看新闻线索
    def click_news_clue(self):
        self.click(self.p_news_clue)

    # 查看政策线索
    def click_clues_policy(self):
        self.click(self.p_clues_policy)

    # 查看更多线索
    def click_check_out_more_clues(self):
        self.click(self.p_check_out_more_clues)

    # 筛选更多企业
    def click_screening_more_enterprises(self):
        self.click(self.p_screening_more_enterprises)

    # 企业详情
    def click_company_details(self):
        self.click(self.p_company_details)


# 产业链获客
def icc():
    icc = IndustryChainCustomers()
    icc.click_icc()
    icc.click_industry()
    sleep(1)
    icc.click_company()
    # 点击查看完整产业链
    icc.click_industry_map()
    # 切换至完整产业链页面
    icc.switch_to_windows_by_index(1)
    assert True == icc.wait_util_text("//label[contains(text(),'产业：')]", "产业：")
    sleep(1)
    # 选择产业
    icc.click_industry_1()
    # 查看更多
    icc.click_see_more()
    # 切回主窗口
    icc.switch_to_windows_by_index(0)
    # 点击查看更多产业园
    icc.click_Industrial_Park_Statistics()
    # 切换至产业园获客页面
    icc.switch_to_windows_by_title("产业园获客 - 银行数字化平台 - 打造银行数据与决策智能")
    assert True == icc.wait_util_text("//span[contains(text(),'导出园区')]", "导出园区")
    # 切回主窗口
    icc.switch_to_windows_by_index(0)

    icc.click_news_clue()
    icc.click_clues_policy()
    # 点击查看更多线索 并切换到资讯商机页面
    icc.click_check_out_more_clues()
    icc.switch_to_windows_by_title("资讯商机 - 银行数字化平台 - 打造银行数据与决策智能")
    assert True == icc.wait_util_text("//span[contains(text(),'热点公司排行')]", "热点公司排行")

    # 切回主窗口,点击筛选更多企业 并切换到企业筛选器页面
    # icc.switch_to_windows_by_title("产业链获客 - 银行数字化平台 - 打造银行数据与决策智能")
    icc.switch_to_windows_by_index(0)
    # 点击筛选更多企业
    icc.click_screening_more_enterprises()
    icc.switch_to_windows_by_title("企业筛选器 - 银行数字化平台 - 打造银行数据与决策智能")
    assert True == icc.wait_util_text("//span[contains(text(),'导出企业')]", "导出企业")

    # 切回主窗口,点击企业进入企业详情页
    icc.switch_to_windows_by_title("产业链获客 - 银行数字化平台 - 打造银行数据与决策智能")
    # 点击企业详情
    icc.click_company_details()
    # assert True == icc.wait_util_text("//span[contains(text(),'中国石油化工集团有限公司')]", "中国石油化工集团有限公司")
